<?php
/**
*/
class loger {
	
	var $readFlag      = false;
	var $readParam     = "";
	var $readLineNum   = 0;
	var $clockwise 	   = true;
	
	function log_write($filePath,$message){
		$message 	= date("Y-M-d H:i:s ").get_current_user()." ".$message."\r\n";
		$message	= iconv("UTF-8","GB2312",$message);
		
		if(!($fp = @fopen($filePath, "a"))){
		 	return FALSE;
		}
		
		flock($fp, LOCK_EX);
		fputs($fp, $header.$message);
		fclose($fp);
		if($this->readFlag){
			return $this->log_read($filePath);
		}
		return TRUE;
	}
	
	// 登陆信息日志
	function log_login($message){ 
		return $this->log_write(ELS_DATADIR."logs/login_".date("Ymd").".log",$message);
	}
	
	// 群组信息日志
	function log_group($gid,$message){ 
		return $this->log_write(ELS_DATADIR."logs/grp_".$gid."_".date("Ymd").".log",$message);
	}
	
	// 消费日志
	function log_consume($uid,$username,$id,$icon,$price){ 
		$logText = "[$uid($username)] 在	($icon)应用($id)号->消费($price)";
		return $this->log_write(ELS_DATADIR."logs/consume_".$icon."_".date("Ymd").".log",$logText);
	}
	
	/**==========================================================================================
	*[名称]:loger
	*[功能]:读取目录下的文件 $readSub->是否打开子目录
	*==========================================================================================
	*/
	function listFiles($dir,$readSub=false){    
	    //打开目录     
	    $handle=opendir($dir);     
	    //阅读目录     
	    while(false!=($file=readdir($handle))){    
	         //列出所有文件并去掉'.'和'..'     
	         if($file!='.'&&$file!='..'){     
	            //所得到的文件名是否是一个目录     
	             if(is_dir("$dir/$file")){    
	                //列出目录下的文件     
	              	if($readSub){
	              		$this->listFiles("$dir/$file");	
	              	}
	              }else{    
                    //如果是文件则打开该文件    
                    //$fp=fopen("$dir/$file","r");     
                    //阅读文件内容     
                    /*
                    $data=fread($fp,filesize("$dir/$file"));     
                    if($data){
              			//将读到的内容赋值给一个数组     
                     	$file_array[]="$dir/$file";     
                       	//输出结果    
                      	while(list($key,$value)=each($file_array)){    
                             echo"$key=>$value<br/>";
                         }
                    }
					*/
					$file_array[]="$dir/$file";     
                    while(list($key,$value)=each($file_array)){    
                    	echo"$key=>$value<br/>";
                    }
                }
	    	}    
	 	}
	}
	
	// 查看日志
	function log_read($filePath){
		$logText = file_get_contents($filePath);
		if(!empty($this->readParam)){
			eval($this->readParam);
		}
		$logText = str_replace(chr(13),"<br>",$logText);
		if($this->readLineNum != 0){
			$logText = str_replace("<br>","(#-#)<br>",$logText);
			
			// 方向上->下,下->上
			$lines = explode('(#-#)', $logText);
			if($this->readLineNum < count($lines)){
				$logText = "";
				if($this->clockwise){
					for($i=0;$i<$this->readLineNum;$i++){
						$logText .= $lines[$i];
					}
				}else{
					for($i=$this->readLineNum;$i>0;$i--){
						$logText .= $lines[$i];
					}
				}
			}
		}
		return $logText;
	}
}
?>